import pymysql
from common.readConfig import read_conf


class ReadSQL(object):
    """操作数据库的类"""

    # 一：建立数据库连接
    def __init__(self):
        self.conn = pymysql.connect(
            host=read_conf.get('mysql', 'host'),
            port=read_conf.getint('mysql', 'port'),
            database=read_conf.get('mysql', 'database'),
            user=read_conf.get('mysql', 'user'),
            password=read_conf.get('mysql', 'password'),
            charset="utf8" # 指定编码格式
        )
        # 创建一个游标
        self.cur = self.conn.cursor()

    # 二：执行SQL语句
    def find_one(self, sql):
        """获取查询到的一个结果"""
        # 查询前同步数据库最新状态
        self.conn.commit()
        # 执行SQL语句
        self.cur.execute(sql)
        return self.cur.fetchone()

    def find_all(self, sql):
        """获取查询到的所有结果"""
        # 查询前同步数据库最新状态
        self.conn.commit()
        # 执行SQL语句
        self.cur.execute(sql)
        return self.cur.fetchall()

    def find_count(self, sql):
        """获取查询到的数量"""
        # 查询前同步数据库的最新状态
        self.conn.commit()
        return self.cur.execute(sql)

    def close(self):
        # 关闭游标
        self.cur.close()
        # 断开数据库连接
        self.conn.close()
